home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Games of Daze
/
Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso
/
x2ftp
/
msdos
/
libs
/
vgl20
/
readme.txt
< prev
next >
Wrap
Text File
|
1993-05-18
|
6KB
|
172 lines
VGL 2.0
VGA Graphics Library
(VGA mode 13h)
Created by Mark Morley
morley@camosun.bc.ca
May 1993
What is VGL?
============
VGL is a graphics library for VGA mode 13h. Perhaps a `collection of
graphics routines' is a better description than `library'. The core of the
package is an assembly language module. This module exists in both a
286 and 386 version and contains the basic "core" routines. All the other
routines are written in C and are contained in seperate modules. Full
source is included.
The library includes routines for drawing on virtual screens (or virtual
page flipping if you like), drawing sprites, doing fast blits, manipulating
the palette (including fading and cycling), drawing bitmapped fonts, loading
GIF images, drawing lines, trapping key presses, handling the mouse, etc.
What does it cost?
==================
Nothing. VGL is free.
What's the catch?
=================
The one thing I ask is that you don't try and sell VGL itself or make it
a part of another programming library. VGL is FREE and anyone who wants
it should be allowed to have it WITHOUT CHARGE.
If you write a program and use my routines, you can sell YOUR PROGRAM
without having to give away the source. You don't even have to give me
any credit for my work, although it would be a nice gesture.
If you do write something with my stuff, I'd love to see it. Whether it's
a demo or a full blown game, I'd just like to see that someone is actually
using this stuff.
Finally, if you find this library useful or informative, I'd love to get
a note from you saying so. This is all the encouragement I need to keep
developing it.
Oh yeah, my wife says she wants a post card from your home town, so if
you're so inclined you can send one to:
M. Morley
3889 Mildred Street
Victoria, B.C.
V8Z 7G1 Canada
What's new in 2.0?
==================
* vglHLine
Draw a horizontal line. To be used later in polygon fills (version 3.0?)
* vglUpdateW, vglUpdateLW, vglCopyW
Work just like the routines without a 'W' on the end, except these
ones will wait for vertical retrace before copying to the screen.
* vglBlack
Sets the palette to all black.
* vglFadeIn, vglFadeOut, vglFadePartIn, vglFadePartOut
Routines to smoothly fade in all or part of a palette.
* vglCyclePartL, vglCyclePartR
Routines to rotate a part of the palette to the left or right.
* vglSetPartPal
Set a partial palette.
* vglSetPal (modified)
Now waits for vertical retrace (avoids *some* flicker).
* vglTrapKeys, vglReleaseKeys
Allows you to test for multiple keys being held down.
* vglLoadFont, vglPutc, vglPuts, vglBoldOn, vglBoldOff, vglItalicsOn,
vglItalicsOff, vglUnderlineOff, vglUnderlineOff, vglShadowOn,
vglShadowOff, vglTextColor, vglUnderlineColor, vglShadowColor
Routines to display bitmapped fonts. 22 fonts are included. I'm
really happy with this module, even though it isn't the cleanest code.
It could be faster, though.
* vglMousePresent, vglInitMouse, vglShowMouse, vglHideMouse,
vglHideMouseIf, vglGetMouseInfo
Simplistic mouse routines. Just enough to get you started. I'll add
support for the rest of the mouse functions when I have more time.
* vglPlayFLI
C routine to play a .FLI file. Sorry, I haven't added support for
.FLC files. This is fairly slow, but possibly still useable for title
screens, etc.
Where do I get it?
==================
VGL's official home is on suncad.camosun.bc.ca in the /pub/morley
directory. Look for a file called vgl20.zip. The demos in the archive
assume that font files will be in a subdirectory called FONTS, so be sure
and unzip it with the -d option!
NOTE: VGL20.ZIP is zipped with PKZIP 2.04G
If you have demos or games to send me, you can upload them to the
same computer into the /incoming directory. Send me an note letting me
know you've uploaded something, I don't remember to check it that often.
Please help make VGL available to more people by uploading it to BBS's
and other FTP sites. Thanks.
How do I use it?
================
For details on how each routine works, you'll have to read the source
files. The VGL library exists in the following modules:
VGL.H The header file for all VGL routines.
VGL286.ASM The 286 ASM routines for blitting, sprites, etc.
VGL386.ASM The 386 ASM routines for blitting, sprites, etc.
VGLPAL.C C routines for fading and cycling palette entries.
VGLGIF.C C routine to load a GIF image from disk.
VGLLINE.C C routine to draw a line using Bresenham's.
VGLFONTS.C C routines to load and use bitmapped fonts.
VGLKEY.C C routines to trap key presses and releases.
VGLMOUSE.C C routines to use the mouse.
VGLFLI.C C routine to play a .FLI file.
To make use of the routines in a particular module, simply add the module
to your makefile or project and link it in. Note that you don't *have*
to include all the modules. If you don't need fonts, then don't link in
VGLFONTS.C If you don't need to trap keystrokes, then don't link in
VGLKEY.C You get the idea.
NOTE: Some modules require others. Example: VGLFONTS.C uses routines in
VGLx86.ASM and VGLLINE.C
There are also a few demo programs (with source) to show you how to use
the library.
I apologise for the lack of decent documentation. I'm more than happy to
try and answer any questions you may have, though.
Special thanks to:
==================
* Mike Asbury, who pointed out a way to speed up the inner loop of several
of my ASM routines. The speedup isn't noticeable on my 486's, but it
apparently makes a big difference on 386's. Thanks Mike!
* Many others who sent me ideas and suggestions. I'm sorry I couldn't
implement them all for this release. Maybe next time.